// 双指针
const reverseList = () => {
  // 前一个初始化为空
  let pre = null;
  //   当前第一个为头结点
  let cur = head;
  while (cur) {
    // 临时保存下一个节点
    const temp = cur.next;
    // 把当前的next指向当前的pre
    cur.next = pre;
    // 此时两个指针开始往后移
    // 先移pre到cur的位置
    pre = cur;
    // 再把cur移到保存的临时节点中
    cur = temp;
  }
  return pre;
};

// 递归写法
var reverseList2 = function (head) {
    function reverse(cur, pre) {
        if (!cur) return pre;
        const temp = cur.next;
        cur.next = pre;
        pre = cur;
        return reverse(temp, cur);
    }

    return reverse(head, null);
}
